package com.ruoyi.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 采购单管理对象 erp_purchase_order_management
 * 
 * @author ruoyi
 * @date 2025-07-17
 */
public class ErpPurchaseOrderPurchaseVO extends BaseEntity
{
    private static final long serialVersionUID = 1L;


    @Excel(name = "供应商简称")
    @TableField("supplier_short_name")
    private String supplierShortName;

    /** 供应商名称 */
    @Excel(name = "供应商名称")
    @TableField("supplier_full_name")
    private String supplierFullName;


    /** SRM状态 */
    private String srmStatus;

    /** 来源单据 */
    private String sourceDoc;

    /** 物料编码 */
    private String materialCode;

    /** 物料名称 */
    private String materialName;

    /** 采购单单据编号 */
    private String poDocNo;

    /** 供应商编码 */
    private String supplierCode;


    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "采购日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date purchaseDate;

    /**
     * 采购总金额
     */
    @Excel(name = "采购总金额")
    private int totalprice;
    /** 不含税单价 */
    private BigDecimal priceWithoutTax;

    /** 税价合计 */
    private BigDecimal taxIncludedTotal;

    /** 税率 */
        private BigDecimal taxRate;

    /** 创建人 */
    @Excel(name = "创建人")
    private String creator;
    /** 创建人 */
    @Excel(name = "到货日期")
    private String daohuorq;

    public int getTotalprice() {
        return totalprice;
    }

    public void setTotalprice(int totalprice) {
        this.totalprice = totalprice;
    }

    public String getSupplierFullName() {
        return supplierFullName;
    }

    public void setSupplierFullName(String supplierFullName) {
        this.supplierFullName = supplierFullName;
    }

    /** 采购单ID，主键 */
    private String id;

    /** 采购单号 */
    @Excel(name = "采购单号")
    private String purchaseOrderNo;
    private  Date createTime;


    /** 关联供应商管理表ID */
    private String supplierId;

    /** 关联请购单管理表ID */
//    只用于连接表
    private String purchaseRequestId;

    @Excel(name = "单据状态", readConverterExp = "如=：待审核、已批准等")
    private int docStatus;
    @Excel(name = "审核状态", readConverterExp = "如=：待审核、已审核等")
    private int auditStatus;


    /** 采购总金额 */
    @Excel(name = "采购总金额")
    private BigDecimal totalAmount;

    /** 采购单状态（如：待发货、已完成等） */
    @Excel(name = "采购单状态", readConverterExp = "如=：待发货、已完成等")
    private String status;




    /** 请购单号 */
    @Excel(name = "请购单号")
    private String purchaseRequestNo;


    @Override
    public Date getCreateTime() {
        return createTime;
    }

    @Override
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getDaohuorq() {
        return daohuorq;
    }

    public void setDaohuorq(String daohuorq) {
        this.daohuorq = daohuorq;
    }

    public String getSrmStatus() {
        return srmStatus;
    }

    public void setSrmStatus(String srmStatus) {
        this.srmStatus = srmStatus;
    }

    public String getSourceDoc() {
        return sourceDoc;
    }

    public void setSourceDoc(String sourceDoc) {
        this.sourceDoc = sourceDoc;
    }

    public String getMaterialCode() {
        return materialCode;
    }

    public void setMaterialCode(String materialCode) {
        this.materialCode = materialCode;
    }

    public String getMaterialName() {
        return materialName;
    }

    public void setMaterialName(String materialName) {
        this.materialName = materialName;
    }

    public String getPoDocNo() {
        return poDocNo;
    }

    public void setPoDocNo(String poDocNo) {
        this.poDocNo = poDocNo;
    }

    public String getSupplierCode() {
        return supplierCode;
    }

    public void setSupplierCode(String supplierCode) {
        this.supplierCode = supplierCode;
    }

    public String getSupplierShortName() {
        return supplierShortName;
    }

    public void setSupplierShortName(String supplierShortName) {
        this.supplierShortName = supplierShortName;
    }

    public BigDecimal getPriceWithoutTax() {
        return priceWithoutTax;
    }

    public void setPriceWithoutTax(BigDecimal priceWithoutTax) {
        this.priceWithoutTax = priceWithoutTax;
    }

    public BigDecimal getTaxIncludedTotal() {
        return taxIncludedTotal;
    }

    public void setTaxIncludedTotal(BigDecimal taxIncludedTotal) {
        this.taxIncludedTotal = taxIncludedTotal;
    }

    public BigDecimal getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(BigDecimal taxRate) {
        this.taxRate = taxRate;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPurchaseOrderNo() {
        return purchaseOrderNo;
    }

    public void setPurchaseOrderNo(String purchaseOrderNo) {
        this.purchaseOrderNo = purchaseOrderNo;
    }

    public String getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(String supplierId) {
        this.supplierId = supplierId;
    }

    public String getPurchaseRequestId() {
        return purchaseRequestId;
    }

    public void setPurchaseRequestId(String purchaseRequestId) {
        this.purchaseRequestId = purchaseRequestId;
    }

    public Date getPurchaseDate() {
        return purchaseDate;
    }

    public void setPurchaseDate(Date purchaseDate) {
        this.purchaseDate = purchaseDate;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator;
    }

    public String getPurchaseRequestNo() {
        return purchaseRequestNo;
    }

    public void setPurchaseRequestNo(String purchaseRequestNo) {
        this.purchaseRequestNo = purchaseRequestNo;
    }

    public int getDocStatus() {
        return docStatus;
    }

    public void setDocStatus(int docStatus) {
        this.docStatus = docStatus;
    }

    public int getAuditStatus() {
        return auditStatus;
    }

    public void setAuditStatus(int auditStatus) {
        this.auditStatus = auditStatus;
    }

    @Override
    public String toString() {
        return "ErpPurchaseOrderPurchaseVO{" +
                "supplierShortName='" + supplierShortName + '\'' +
                ", supplierFullName='" + supplierFullName + '\'' +
                ", srmStatus='" + srmStatus + '\'' +
                ", sourceDoc='" + sourceDoc + '\'' +
                ", materialCode='" + materialCode + '\'' +
                ", materialName='" + materialName + '\'' +
                ", poDocNo='" + poDocNo + '\'' +
                ", supplierCode='" + supplierCode + '\'' +
                ", purchaseDate=" + purchaseDate +
                ", totalprice=" + totalprice +
                ", priceWithoutTax=" + priceWithoutTax +
                ", taxIncludedTotal=" + taxIncludedTotal +
                ", taxRate=" + taxRate +
                ", creator='" + creator + '\'' +
                ", id='" + id + '\'' +
                ", purchaseOrderNo='" + purchaseOrderNo + '\'' +
                ", supplierId='" + supplierId + '\'' +
                ", purchaseRequestId='" + purchaseRequestId + '\'' +
                ", docStatus=" + docStatus +
                ", auditStatus=" + auditStatus +
                ", totalAmount=" + totalAmount +
                ", status='" + status + '\'' +
                ", daohuorq='" + daohuorq + '\'' +
                ", purchaseRequestNo='" + purchaseRequestNo + '\'' +
                '}';
    }
}
